1
O Mistério da Moeda de 10 Cêntimos e a Realidade dos Números em Ponto Flutuante
AI017Lesson 3
00:00

O atrito fundamental na física computacional surge porque os computadores representam números reais usando matemática de ponto flutuante binária. Ao contrário do pensamento humano em base-10 (decimal), o hardware armazena valores em base-2 (binária). Isso resulta em uma abstração imperfeita: frações decimais simples como 0,1 não podem ser representadas com precisão.

1. A Realidade dos Números em Ponto Flutuante

Go fornece dois tipos principais para números reais: float32 e float64. Quando se usa a sintaxe de declaração curta de variável como price := 0.0, Go assume por padrão float64. Esses tipos são aproximações da realidade, não valores matemáticos exatos.

0,1 + 0,1 = ?Gopher: "Por que não é 0,2?"0,0001100110011...

2. O Mistério do 0,1

Na base-10, $1/3$ resulta em um número decimal infinito e repetido ($0,333...$). Na base-2, o valor $0,1$ resulta em um fração infinita e repetida. Como a memória do computador é finita, essa fração é truncada, levando a erros acumulados. Por exemplo, $0,1 + 0,2$ resulta em $0,30000000000000004$ em vez de exatamente $0,3$.

Aviso: Nunca use == para comparar números em ponto flutuante em gateways lógicos, pois essas discrepâncias microscópicas farão com que as comparações falhem.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>